package view;

import java.awt.*;
import java.util.Hashtable;
import java.util.List;

import javax.swing.*;
import javax.swing.LayoutStyle.*;
import javax.swing.GroupLayout.*;

import controller.*;

import model.*;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class JuegoModificar extends JPanel {
	private static final long serialVersionUID = 1L;
	private JComboBox<String> juegoListaBox;
	private List<Juego>juegos=JuegoController.getJuegoController().listar();
	private Hashtable<String,Juego>juegosTabla=new Hashtable<String,Juego>();

	/**
	 * Create the panel.
	 */
	public JuegoModificar() {
		setSize(new Dimension(800, 400));
		
		JLabel juegoCopiaAltaTit = new JLabel("Modificar Juego");
		juegoCopiaAltaTit.setAlignmentX(Component.CENTER_ALIGNMENT);
		juegoCopiaAltaTit.setHorizontalAlignment(SwingConstants.CENTER);
		juegoCopiaAltaTit.setHorizontalTextPosition(SwingConstants.CENTER);
		juegoCopiaAltaTit.setFont(new Font("Tahoma", Font.BOLD, 15));
		
		JLabel juegoCopiaAltaNombre = new JLabel("Juego:");
		juegoCopiaAltaNombre.setHorizontalAlignment(SwingConstants.RIGHT);
		juegoListaBox = new JComboBox<String>();
		for(Juego juego : juegos){
			juegosTabla.put(juego.getNombre()+" para "+juego.getPlataforma().getNombre(), juego);
			juegoListaBox.addItem(juego.getNombre()+" para "+juego.getPlataforma().getNombre());
			
		}
		
		JButton juegoCopiaAltaBtn = new JButton("Modificar");
		juegoCopiaAltaBtn.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Juego juego=juegosTabla.get(juegoListaBox.getSelectedItem());
				JuegoModificarPopUp popUp=new JuegoModificarPopUp(juego);
				final JComponent[] inputs = new JComponent[] {
						popUp
				};
				JOptionPane.showMessageDialog(null, inputs, "Modificar Juego", JOptionPane.PLAIN_MESSAGE);
				JuegoController.getJuegoController().modificar(juego, popUp);
				juegos=JuegoController.getJuegoController().listar();
				juegosTabla=new Hashtable<String,Juego>();
				juegoListaBox.removeAllItems();
				for(Juego jueg : juegos){
					juegosTabla.put(jueg.getNombre()+" para "+jueg.getPlataforma().getNombre(), juego);
					juegoListaBox.addItem(jueg.getNombre()+" para "+jueg.getPlataforma().getNombre());
				}
			}
		});
		
		GroupLayout groupLayout = new GroupLayout(this);
		groupLayout.setHorizontalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addContainerGap()
					.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
						.addGroup(groupLayout.createSequentialGroup()
							.addComponent(juegoCopiaAltaNombre, GroupLayout.DEFAULT_SIZE, 316, Short.MAX_VALUE)
							.addPreferredGap(ComponentPlacement.RELATED)
							.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
								.addComponent(juegoCopiaAltaBtn)
								.addComponent(juegoListaBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
							.addContainerGap(395, Short.MAX_VALUE))
						.addGroup(Alignment.TRAILING, groupLayout.createSequentialGroup()
							.addComponent(juegoCopiaAltaTit, GroupLayout.DEFAULT_SIZE, 800, Short.MAX_VALUE)
							.addContainerGap())))
		);
		groupLayout.setVerticalGroup(
			groupLayout.createParallelGroup(Alignment.LEADING)
				.addGroup(groupLayout.createSequentialGroup()
					.addContainerGap()
					.addComponent(juegoCopiaAltaTit, GroupLayout.PREFERRED_SIZE, 19, GroupLayout.PREFERRED_SIZE)
					.addGap(24)
					.addGroup(groupLayout.createParallelGroup(Alignment.BASELINE)
						.addComponent(juegoListaBox, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
						.addComponent(juegoCopiaAltaNombre))
					.addGap(18)
					.addComponent(juegoCopiaAltaBtn)
					.addContainerGap(285, Short.MAX_VALUE))
		);
		setLayout(groupLayout);

	}
}
